package usuario;


import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import model.Publicacion.Pregunta;
import model.Publicacion.Respuesta;
import model.Usuario.UsuarioNoRegistrado;
import model.sistema.Sistema;

public class TestUsuarioNoRegistrado {

	Sistema sistema;
	UsuarioNoRegistrado usuarioNoRegistrado;
	Pregunta p1;
	Pregunta p2;
	Respuesta r1;
	Respuesta r2;
	Respuesta r3;
	
	@Before
	public void setUp(){
		
		p1 = mock(Pregunta.class);
		p2 = mock(Pregunta.class);
		r1 = mock(Respuesta.class);
		r2 = mock(Respuesta.class);
		r3 = mock(Respuesta.class);
		sistema = mock(Sistema.class);
		usuarioNoRegistrado = new UsuarioNoRegistrado("123456");
		
		
	}
	
	@Test
	public void TestPuntajePorActividad(){
		
		usuarioNoRegistrado.responderApregunta(p1, r1);
		Assert.assertEquals(2, usuarioNoRegistrado.puntajePorActividad(),0.001);
		usuarioNoRegistrado.responderApregunta(p1, r2);
		Assert.assertEquals(4, usuarioNoRegistrado.puntajePorActividad(),0.001);
		
		
		
	}
	
	@Test
	public void TestFactorDeRegularidad(){
		
		Assert.assertEquals(0.75, usuarioNoRegistrado.factorDeRegularidad(),0.001);
		
	}
	
	@Test
	public void TestGet(){
		
		assertEquals("123456",usuarioNoRegistrado.getDireccionIp());
		
		usuarioNoRegistrado.responderApregunta(p1, r1);
		usuarioNoRegistrado.responderApregunta(p1, r2);
		assertEquals(2,usuarioNoRegistrado.getPublicaciones().size());
		usuarioNoRegistrado.responderApregunta(p1, r3);
		assertEquals(3,usuarioNoRegistrado.getPublicaciones().size());
	}
	
	
	
}
